package com.wang.gallerybackend.service;


import com.wang.gallerybackend.model.dto.space.analyze.*;
import com.wang.gallerybackend.model.entity.Space;
import com.wang.gallerybackend.model.entity.User;
import com.wang.gallerybackend.model.vo.space.SpaceUserAnalyzeResponse;
import com.wang.gallerybackend.model.vo.space.analyze.SpaceCategoryAnalyzeResponse;
import com.wang.gallerybackend.model.vo.space.analyze.SpaceSizeAnalyzeResponse;
import com.wang.gallerybackend.model.vo.space.analyze.SpaceTagAnalyzeResponse;
import com.wang.gallerybackend.model.vo.space.analyze.SpaceUsageAnalyzeResponse;

import java.util.List;

public interface SpaceAnalyzeService {
	/**
	 * 空间使用情况分析
	 * @param spaceUsageAnalyzeRequest
	 * @param loginUser
	 * @return
	 */
  SpaceUsageAnalyzeResponse spaceUsageAnalyze(SpaceUsageAnalyzeRequest spaceUsageAnalyzeRequest, User loginUser);

	/**
	 * 分类空间使用情况分析
	 * @return
	 */
  List<SpaceCategoryAnalyzeResponse> getSpaceCategoryAnalyze(SpaceCategoryAnalyzeRequest spaceCategoryAnalyzeRequest, User loginUser);
	/**
	 * 分类空间使用情况分析
	 * @return
	 */
	List<SpaceTagAnalyzeResponse> getSpaceTagAnalyze(SpaceTagAnalyzeRequest spaceTagAnalyzeRequest, User loginUser);


	/**
	 * 获取空间大小使用情况
	 * @param spaceTagAnalyzeRequest
	 * @param loginUser
	 * @return
	 */
	List<SpaceSizeAnalyzeResponse> getSpaceSizeAnalyze(SpaceSizeAnalyzeRequest spaceTagAnalyzeRequest, User loginUser);


	/**
	 *  获取空间用户使用情况
	 * @param spaceUserAnalyzeRequest
	 * @param loginUser
	 * @return
	 */
	List<SpaceUserAnalyzeResponse> getSpaceUserAnalyze(SpaceUserAnalyzeRequest spaceUserAnalyzeRequest, User loginUser);

	/**
	 * 获取空间排行
	 * @param spaceRankAnalyzeRequest
	 * @param loginUser
	 * @return
	 */
	List<Space> getSpaceRankAnalyze(SpaceRankAnalyzeRequest spaceRankAnalyzeRequest, User loginUser);



}
